OpenRoads Designer CONNECT Edition SDK Help

Curve widening creator

Description

  • This is a custom tool to create curve widening to a corridor using template point and .wid file

  • Curve widening is used to automatically create and apply horizontal controls to widen lane and/or edge of pavement lines around curves, moving them further away from the centerline at each curve of the controlling alignment.

  • Prerequisites to use this tool are,

    • The alignment should have curve.

    • The corridor should have template drop assigned to read the points.

    • The .wid file with radius values defined for widening the curve.

Source Code

//Required References
using Bentley.CifNET.GeometryModel.SDK;

 public Bentley.CifNET.GeometryModel.SDK.CurveWidening CurveWideningToCorridor()
        {
            Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con = Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit.GetActive();
            GeometricModel geomModel = con.GetActiveGeometricModel();
            if (geomModel == null) return null;

            //Add Curve widening to first corridor from list
            foreach (Corridor corridor in geomModel.Corridors)
            {
                //create parameters for curve widening
                double startDistance = corridor.StartDistance;
                double endDistance = corridor.EndDistance;
		
                string pointName = "EOP_R";
                Bentley.CifNET.GeometryModel.SDK.CurveWideningParameter curveWideningParameter = new Bentley.CifNET.GeometryModel.SDK.CurveWideningParameter(pointName, startDistance, endDistance);

                curveWideningParameter.Description = "Sample CW on EOP_R";
                curveWideningParameter.Enabled = false;
                curveWideningParameter.Overlap = CurveWideningOverlap.ShiftMaxWideningPointsOntoCurves;
                curveWideningParameter.Priority = 1;
                curveWideningParameter.UseSpiralLengthForTransition = false;

	     //User needs to change the parameters from this wid file as needed i.e., Rad, Wi, Li , Wo,Lo etc.
                curveWideningParameter.WideningTableFileName = "C:\\ProgramData\\Bentley\\OpenRoads Designer CE 10.11\\Configuration\\Organization-Civil\\_Civil Default Standards - Imperial\\Widening\\curve_widening_imperial_no_spirals.wid";
                 //create curve widening for corridor
                Bentley.CifNET.GeometryModel.SDK.CurveWidening curveWidening = corridor.AddCurveWidening(curveWideningParameter);
                if (curveWidening == null) return null;

                return (Bentley.CifNET.GeometryModel.SDK.CurveWidening)curveWidening;
            }
            return null;
        }